package com.logicalthinking.socialmall.service;

import com.github.chenlijia1111.utils.common.Result;
import java.util.List;

import com.logicalthinking.socialmall.common.vo.requestVo.role.RolePageQueryParams;
import com.logicalthinking.socialmall.common.vo.responseVo.role.RoleVo;
import com.logicalthinking.socialmall.entity.Role;
import com.logicalthinking.socialmall.entity.RoleAuth;

/**
 * 角色表
 * @author chenLiJia
 * @since 2020-02-17 14:43:59
 **/
public interface RoleServiceI {

    /**
     * 添加
     *
     * @param params      1
     * @return com.github.chenlijia1111.utils.common.Result
     * @author chenLiJia
     * @since 2020-02-17 14:43:59
     **/
    Result add(Role params);

    /**
     * 添加
     *
     * @param params      1
     * @return com.github.chenlijia1111.utils.common.Result
     * @author chenLiJia
     * @since 2020-02-17 14:43:59
     **/
    Result update(Role params);

    /**
     * 条件查询
     *
     * @param condition      1
     * @return      * @author chenLiJia
     * @since 2020-02-17 14:43:59
     **/
    List<Role> listByCondition(Role condition);

    /**
     * 批量添加角色权限关联
     * @param params 权限
     * @param roleId 角色id
     * @return
     */
    Result batchAddRoleAuth(List<Integer> params,Integer roleId);

    /**
     * 通过角色id删除角色权限
     * @param roleId
     * @return
     */
    Result deleteRoleAuthByRoleId(Integer roleId);


    /**
     * 关联角色权限信息
     * @param list
     */
    void getFullInfoWithRoleVo(List<RoleVo> list);

    /**
     * 查询角色列表
     * @param params
     * @return
     */
    List<RoleVo> listPage(RolePageQueryParams params);

}
